import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = 'Microsoft YaHei'
# 加载三张表数据
file_path_balance = '../雪龙集团资产负债表.xlsx'
file_path_profit = '../雪龙集团利润表.xlsx'
file_path_cashflow = '../雪龙集团现金流量表.xlsx'

# 读取资产负债表
df_balance = pd.read_excel(file_path_balance, header=None)
df_balance.columns = ["项目"] + [2020, 2021, 2022, 2023]

# 读取利润表
df_profit = pd.read_excel(file_path_profit, header=None)
df_profit.columns = ["项目"] + [2020, 2021, 2022, 2023]

# 转换数值列（去除逗号并转换为数字）
for col in [2020, 2021, 2022, 2023]:
    df_balance[col] = pd.to_numeric(df_balance[col].replace(',', '', regex=True), errors='coerce')
    df_profit[col] = pd.to_numeric(df_profit[col].replace(',', '', regex=True), errors='coerce')

# 提取所需数据
# 从利润表提取净利润
net_profit = df_profit[df_profit["项目"] == "净利润(元)"].iloc[0, 1:]

# 从资产负债表提取总资产和总负债
total_assets = df_balance[df_balance["项目"] == "资产总计(元)"].iloc[0, 1:]
total_liabilities = df_balance[df_balance["项目"] == "负债合计(元)"].iloc[0, 1:]

# 计算所有者权益
equity = total_assets - total_liabilities

# 计算平均净资产
average_equity = (equity.shift(1) + equity) / 2  # 使用前一年的权益值计算平均值

# 计算净资产收益率（ROE）
roe = (net_profit / average_equity) * 100

# 绘制折线图
plt.figure(figsize=(10, 6))
plt.plot([2020, 2021, 2022, 2023], roe, marker='o', label="净资产收益率（ROE）", color='blue')

# 添加标题和标签
plt.title("雪龙集团2020-2023年盈利能力分析", fontsize=16)
plt.xlabel("年份", fontsize=12)
plt.ylabel("净资产收益率（%）", fontsize=12)

# 添加图例和网格
plt.legend(loc="best", fontsize=10)
plt.grid(alpha=0.5)
plt.tight_layout()

plt.savefig('../分析图象/盈利能力分析图表.png')
# 显示图表
plt.show()
